From 689e711678725683df2a13fbe530a4a238a2b7b4 Mon Sep 17 00:00:00 2001 From: Andres Lagar-Cavilla Date: Thu, 17 May 2012 10:24:54 +0100 Subject: [PATCH] x86/hvm/svm: used unlocked p2m lookups in trace and error paths. Signed-off-by: Andres Lagar-Cavilla --- xen/arch/x86/hvm/svm/svm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 8604259042..e717dda8dd 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -1321,8 +1321,7 @@ static void svm_do_nested_pgfault(struct vcpu *v, p2m = p2m_get_p2m(v); _d.gpa = gpa; _d.qualification = 0; - mfn = get_gfn_type_access(p2m, gfn, &_d.p2mt, &p2ma, 0, NULL); - __put_gfn(p2m, gfn); + mfn = __get_gfn_type_access(p2m, gfn, &_d.p2mt, &p2ma, 0, NULL, 0); _d.mfn = mfn_x(mfn); __trace_var(TRC_HVM_NPF, 0, sizeof(_d), &_d); @@ -1343,8 +1342,7 @@ static void svm_do_nested_pgfault(struct vcpu *v, if ( p2m == NULL ) p2m = p2m_get_p2m(v); /* Everything else is an error. */ - mfn = get_gfn_type_access(p2m, gfn, &p2mt, &p2ma, 0, NULL); - __put_gfn(p2m, gfn); + mfn = __get_gfn_type_access(p2m, gfn, &p2mt, &p2ma, 0, NULL, 0); gdprintk(XENLOG_ERR, "SVM violation gpa %#"PRIpaddr", mfn %#lx, type %i\n", gpa, mfn_x(mfn), p2mt); -- 2.30.2